Various classes of graphical models or graphical programming describe computations that can be performed on application specific computational hardware, such as a computer, microcontroller, field programmable gate array (FPGA), and custom hardware. Examples of graphical models can include time-based block diagrams such as those found within the Simulink® environment from the MathWorks, Inc. Natick Ma, discrete-event diagrams such as those found within the SimEvents® environment from the MathWorks, Inc. and data-flow diagrams. A common characteristic among these various forms of graphical models is that they define semantics on how to execute the diagram.
Historically, engineers and scientists have utilized graphical models in numerous scientific areas such as feedback control theory and signal processing, to study, design, debug, and refine dynamic systems. Dynamic systems are systems whose behaviors change over time. Dynamic systems may be representative of many real-world systems, such as control systems. Graphical modeling has become common technique for designing models of dynamic systems because graphical modeling software packages provide sophisticated software platforms with a rich suite of support tools that makes the analysis and design of dynamic systems efficient, methodical, and cost-effective.
Graphical modeling environments can include one or more graphical models. These graphical models can be described by a graph consisting of nodes (often called blocks) connected by edges (often called lines or signals). The edges form dependencies between the nodes. The nodes generally describe computations, though it is also possible for the edges to have semantic meaning. The semantic behavior of the graphical model is different in each domain. For example, in time-based block diagrams edges represent signal quantities that vary with time (e.g., data signals) and the nodes are blocks representing dynamic systems (e.g., components of a controller). The signals may form a time-based dependency between blocks. In contrast, the semantic behavior in a discrete-event system may differ from the semantic behavior of the time-based model. For example, in a discrete-event system, the edges generally represent entity paths by which entities can travel from node to node. Each node in a discrete-event system may represent an action to perform on the entity. In a data flow diagram, nodes may represent operations. The edges may represent values and the nodes may be executed based upon data availability.
In the above classes of graphical models, it is possible to provide explicit execution control via a control edge connecting a control initiator with a node (or nodes) within a model. The controlled nodes are referred to as a subgraph. For example, Simulink provides function-call and action signals which are used to explicitly control the execution of subsystems or other models. In this existing system, function-call and action signals take precedence over the data signals. Existing techniques may provide desired operating characteristics for graphical models in some situations; however, in other situations models may not operate as desired. For example, data dependencies may be ignored when explicit execution control is used in conventional modeling environments.